package com.yida.gwj.vote.outside.mapper;

import com.yida.gwj.vote.outside.domain.GwjVoteProject;
import com.yida.gwj.vote.outside.domain.dto.GwjVoteOwnerProjectListDTO;
import com.yida.gwj.vote.outside.domain.request.GwjVoteOwnerProjectQueryRequest;
import com.yida.gwj.vote.outside.domain.request.GwjVoteProjectQueryRequest;

import java.util.List;

/**
 * 投票项目Mapper接口
 *
 * @author lqq
 * @date 2023-03-10
 */
public interface GwjVoteProjectMapper {
	/**
	 * 查询投票项目
	 *
	 * @param voteId 投票项目主键
	 * @return 投票项目
	 */
	public GwjVoteProject selectVoteProjectByVoteId(Long voteId);

	/**
	 * 查询投票项目列表
	 *
	 * @param voteProject 投票项目
	 * @return 投票项目集合
	 */
	public List<GwjVoteProject> selectVoteProjectList(GwjVoteProjectQueryRequest voteProject);


/**
	 * 查询投票公示项目列表
	 *
	 * @param voteProject 投票项目
	 * @return 投票项目集合
	 */
	public List<GwjVoteProject> selectVotePublicizeProjectList(GwjVoteProjectQueryRequest voteProject);

	/**
	 * 新增投票项目
	 *
	 * @param voteProject 投票项目
	 * @return 结果
	 */
	public int insertVoteProject(GwjVoteProject voteProject);

	/**
	 * 修改投票项目
	 *
	 * @param voteProject 投票项目
	 * @return 结果
	 */
	public int updateVoteProject(GwjVoteProject voteProject);

	/**
	 * 修改投票项目访问次数
	 *
	 * @param voteProject 投票项目
	 * @return 结果
	 */
	public int updateVoteProjectAccessNum(GwjVoteProject voteProject);

	/**
	 * 删除投票项目
	 *
	 * @param voteId 投票项目主键
	 * @return 结果
	 */
	public int deleteVoteProjectByVoteId(Long voteId);

	/**
	 * 批量删除投票项目
	 *
	 * @param voteIds 需要删除的数据主键集合
	 * @return 结果
	 */
	public int deleteVoteProjectByVoteIds(Long[] voteIds);

	/**
	 * 查询业主可投票项目列表
	 *
	 * @param request 业主ID
	 * @return 投票项目集合
	 */
	List<GwjVoteOwnerProjectListDTO> selectVoteOwnerProjectList(GwjVoteOwnerProjectQueryRequest request);
}
